﻿using System.ComponentModel.DataAnnotations.Schema;
using System.ComponentModel.DataAnnotations;
using PmSadis.Models.Abstract;
using System;
using System.Collections.Generic;

namespace PmSadis.Models
{
    /// <summary>
    /// Элемент объекта содержания
    /// </summary>
    [Table("S_ELEMENT")]
    public class Element : IRedactModel
    {
        /// <summary>
        /// Идентификатор
        /// </summary>
        [Column("ELEMENT_ID")]
        [Key]
        public int ElementId { get; set; }
        
        /// <summary>
        /// Наименование
        /// </summary>
        [Column("NAME")]
        [Required]
        public string Name { get; set; }

        /// <summary>
        /// Тип элемента
        /// </summary>
        [Column("ELEMENT_TYPE")]
        public Enums.ElementType ElementType { get; set; }

        /// <summary>
        /// Тип объекта
        /// </summary>
        [Column("OBJECT_TYPE")]
        public Enums.ObjectType ObjectType { get; set; }

        /// <summary>
        /// Работы на элементе
        /// </summary>
        public virtual ICollection<ElementWork> ElementWorks { get; set; }

        /// <summary>
        /// Дата создания
        /// </summary>
        [Column("DATE_CREATE")]
        public DateTime DateCreate { get; set; }

        /// <summary>
        /// Дата редактирования
        /// </summary>
        [Column("DATE_UPDATE")]
        public DateTime DateUpdate { get; set; }

        /// <summary>
        /// Идентификатор единицы измерения
        /// </summary>
        [Column("UNIT_ID")]
        public int? UnitId { get; set; }
        public virtual Unit Unit { get; set; }
    }
}
